// 定义纸币面值常量，从大到小排序
const DENOMINATIONS: [u32; 8] = [100, 50, 30, 20, 10, 5, 2, 1];

pub fn dp_rec_mc(amount: u32) -> u32 {
    // 剩余金额
    let mut remaining = amount;
    // 找零纸币数
    let mut count = 0;
    // 遍历每种纸币面值
    for denomination in DENOMINATIONS {
        // 计算当前面值纸币可以使用的数量
        let n = remaining / denomination; 
        // 更新剩余金额
        remaining -= n * denomination;
        // 更新纸币计数
        count += n;
    }
    // 返回最小找零纸币数
    count
}
